package com.wss.service;

import com.wss.domain.Account;
import com.wss.domain.Message;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface AccountService {

    /**
     * 查询所有账户
     * @return
     */
    List<Account> findAll();

    /**
     * 保存帐户信息
     * @param account
     * @return
     */
    boolean addUser(Account account);

    /**
     * 检查输入的用户名是否已存在
     * @param username
     * @return
     */
    boolean checkUsername(String username);

    /**
     * 检查输入的用户名除了自己以外是否已存在
     * @param account
     * @return
     */
    boolean checkOtherName(Account account);

    /**
     * 修改用户信息
     * @param account
     * @return
     */
    boolean updateUser(Account account);

    /**
     * 普通用户修改用户名和密码
     * @param account
     * @return
     */
    boolean updateUserInfo(Account account);

    /**
     * 检查管理员原密码输入是否正确
     * @param account
     * @param oldPwd
     * @return
     */
    boolean checkAdminPwd(Account account,String oldPwd);

    /**
     * 修改管理员密码
     * @param account
     * @param newPwd
     * @return
     */
    boolean changeAdminPwd(Account account,String newPwd);

    /**
     * 删除用户时将删除所有此用户下的blog,comment,order
     * @param account
     * @return
     */
    Message deleteUser(Account account);

    /**
     * 删除管理员用户前检查是否有其他管理员用户，如果没有不能删除
     * @return
     */
    boolean checkAdminCount();

    /**
     * 查询要修改的用户p_id
     * @param account
     * @return
     */
    boolean checkUserPid(Account account);

}
